// auth.js - 认证相关工具函数

/**
 * 检查用户是否已登录
 * @returns {boolean} 是否已登录
 */
function isLoggedIn() {
  const userInfo = wx.getStorageSync('userInfo')
  return !!userInfo && !!userInfo.token
}

/**
 * 检查用户是否是管理员
 * @returns {boolean} 是否是管理员
 */
function isAdmin() {
  const userInfo = wx.getStorageSync('userInfo')
  return !!userInfo && userInfo.role === 'admin'
}

/**
 * 确保用户已登录，否则跳转到登录页
 * @param {boolean} adminRequired 是否需要管理员权限
 * @returns {boolean} 是否通过检查
 */
function ensureLoggedIn(adminRequired = false) {
  const userInfo = wx.getStorageSync('userInfo')
  
  if (!userInfo || !userInfo.token) {
    wx.showToast({
      title: '请先登录',
      icon: 'none',
      duration: 2000
    })
    
    setTimeout(() => {
      wx.redirectTo({
        url: '/pages/login/login'
      })
    }, 1500)
    
    return false
  }
  
  if (adminRequired && userInfo.role !== 'admin') {
    wx.showToast({
      title: '需要管理员权限',
      icon: 'none',
      duration: 2000
    })
    
    setTimeout(() => {
      wx.switchTab({
        url: '/pages/index/index'
      })
    }, 1500)
    
    return false
  }
  
  return true
}

module.exports = {
  isLoggedIn,
  isAdmin,
  ensureLoggedIn
}